查看原文
其他

Star History 2022 年度精选|平台工程开源项目

mi Bytebase 2023-01-28

通常来说,开发者希望尽可能少与基础设施打交道,而组织希望对自己的基础设施有掌控。于是,平台工程(Platform Engineering)出现了,它致力于消除开发者与基础设施之间的障碍,通过自动化的方式统一开发者。
平台工程的热度在 2022 年持续上升,也出现在了 Gartner Hype Cycle for Software Engineering 2022 报告(https://www.gartner.com/en/articles/what-s-new-in-the-2022-gartner-hype-cycle-for-emerging-technologies)中。
这篇文章,Star History 就精选出了平台工程领域的 10 大开源项目。

Backstage

https://github.com/backstage/backstage

Backstage 是一个软件目录和开发者平台(Software Catalog and Developer Platform)由 Spotify 创立,是一个构建开发者门户工具,能将一个组织的工具、服务、应用程序、数据和文档统一到一个单一且一致的用户界面中,使开发者能够轻松地创建、管理和探索软件,这样开发者得以专注于构建应用程序,而不是反复重新发明按钮。
Spotify 为了避免高速发展时出现工具混乱的情况,便研发了 Backstage,希望它能够帮助工程师更高效地工作,2020 年它被开源,2022 年初成为了 CNCF 孵化项目。
2020 年 Spotify 内部 280+ 个工程团队已经使用 Backstage 管理了 2000+ backend 服务,300+ 网站,和 200+ 移动端功能。
Backstage 2022 的年终总结(标题 Backstage Wrapped 2022 是在向 Spofity 每年的经典项目 Spofity Wrapped 致敬吗)提到过去一年他们新增了 75 个公开用户,现已有 600+ 用户,也从侧面证明了 Backstage 商业模式前景无量呀😍。

Elasticsearch

https://github.com/elastic/elasticsearch

Elasticsearch 是一个实时的分布式存储、搜索、分析引擎,2010 年发布了最早的版本,是在 Apache Lucene 的基础上开发而成,特性正如其名 elastic 所指:有弹性,灵活,可伸缩的。

2022 年,Elastic 宣布了 Elastic 8.0,这个引擎变得更快,更简洁,更易扩展了。在产品拓展他们也是毫不拖泥带水:逐渐增强 Elastic Cloud 性能的同时也在 Roadmap 中加上了近期最火的关键词:Stateless Elasticsearch,使服务变成无状态,实现弹性云平台。

不过,我们当然也不可能忘了 Elastic 和 AWS 的争议:AWS fork 并商业化(别人的)开源项目,而 Elastic 则变更开源协议,限制用户正常使用客户端。虽然他们最后达成了和解,但是不禁让人想问:在开源的世界,难道用户才是韭菜?


GitLab 

https://github.com/gitlabhq/gitlabhq

GitLab 的出生是一个代码托管项目,方便团队开发与协作,但现在已经拓展为一个 DevSecOps Platform。DevSecOps 也就是在 DevOps 之上加了 Security:通常来说,安全在开发生命周期的最后阶段,但代码被退回给开发者修复时,会增加成本和时间,DevSecOps 使用了 Shift-left approach(向左转移),在 DevOps 生命周期的早期就拥抱安全,通过使用工具和方法来保护和监控实时应用程序,将安全实践渗透到软件开发的每个阶段,直到部署。

此外,GitLab 很出名的是他们公开的 Handbook (https://about.gitlab.com/handbook/),可以理解为是他们的员工手册,从这份有 2000+ 页且归类恰当的文档中,我们能窥探一下 GitLab 各个部门工作的流程/协同方式/使用工具,甚至公司文化,内容相当具体和丰富 - 对于刚建立不久需要创建一些规章制度以及 SOP 的创业公司来说,这本 Handbook 非常 handy 有用。


Grafana

https://github.com/grafana/grafana

Grafana 是一个监控仪表系统。它简化了监控的复杂度:提供需要监控的数据,Grafana 就可以生成各种可视化仪表。Grafana 在 2014 年由 Torkel Ödegaard(Grafana Labs Co-Founder)首次发布,当时是商旅公司 Orbitz 的一个项目的分支。后来的故事我们都知道了:2019 年 Grafana Labs 募集了 $24M A 轮融资后,走上了一发不可收拾的道路,最近一次融资是去年 4 月的 $240M D 轮。

2022 年底 Grafana Labs 在年度大会 ObservabilityCON 宣布开源了两个新项目:用于持续分析 (Continuous Profiling) 的开源数据库 Phlare,和用于前端应用可观测性的 Faro。值得一提的是,Phlare 是一个 Hackathon 项目提供的灵感:项目展示了持续分析在跟度量、日志和跟踪(metrics, logs, and traces)相连接时的价值,于是他们决定着手创建一个用于持续分析遥测的数据库。


Kong

https://github.com/Kong/kong

Kong 是一个开源的云原生 API 网关项目,用户通过它可以对流量进行分析,管理和不同 API 相关的开发人员、消费者、合作伙伴和客户等。从 2010 年至今 Kong 一共募集了 6 轮总计 $169.1M 的融资。2022 年,Kong 发布了 Kong Gateway 3.0,在 AWS Marketplace 推出了 SaaS API 平台:Kong Konnect。

Kong 最一开始做的是一个 API 聚合平台/市场,那时公司和产品的名字也叫 Mashape,Kong 这个 API 网关项目是后来孵化出来的,很快就成为了最核心的业务。而本身的聚合平台/市场这块业务之后又卖给了 RapidAPI。也堪称近几年开源届一个经典的转型案例。


Kubernetes

https://github.com/kubernetes/kubernetes

虽然有点烂大街了,但讲平台工程不提 Kubernetes 显然是不完整的。Kubernetes 是最流行的容器编排系统之一,用于自动化软件部署,扩展和管理。最初由谷歌设计,现在由云原生计算基金会(CNCF)维护(事实上 CNCF 就是从 Kubernetes 开始起家的)。

Kubernetes 有一个庞大的生态系统,是平台工程里的平台。本文列举的项目中,除了 Terraform 外,Kubernetes 是其他所有项目的主要运行平台。而 Terraform 同样也支持通过 Terraform Kubernetes Provider 和 Kubernetes 进行交互,而且这是由 HashiCorp 官方维护的 Provider,和三大云厂商起名。

冷知识 #1:Kubernetes 名字源于古希腊语中的「舵手」,这也解释了它的 logo ☸️。同时和 Container (集装箱)概念也有连接,当然可能也多少有点针对当年的竞品 Docker Swarm 的意思。

冷知识 #2:K8s 是将 Kubernetes 中间 8 个字母「ubernete」替换为了数字「8」,同理可将 internationalizaiton 变成 i18n 🤷。

如果想了解更多关于 Kubernetes 的故事,可以看看 Honeypot 制作的 Kubernetes 纪录片(https://youtu.be/BE77h7dmoQU)!


Sourcegraph

https://github.com/sourcegraph/sourcegraph
进入 Sourcegraph 主页(https://sourcegraph.com/)是个代码搜索页面,而不是通常的产品介绍页面,这应该是最好的产品 demo 了吧?

Sourcegraph 是一个代码搜索平台。想象开发者正在修 bug,但突然需要跳到代码的另一个部分,于是他不得不在 IDE 中打开另一个文件,也就破坏了他当前的工作状态。Sourcegraph 基于浏览器的代码搜索界面能让开发者在探索代码的其他部分时保持其编辑状态,这大大降低了切换的成本。一些进阶版的功能比如 code navigation, code insight 可以帮助开发者更快 onboard 新的项目、更了解自己项目(代码如何随时间变化和它的当前状态)等等,还有像 Batch Changes 这样可以大规模统一修改不同代码仓库里代码的能力。
此外,Sourcegraph 的官方播客 Sourcegraph Podcast (https://about.sourcegraph.com/podcast),每期都由联合创始人/CTO Beyang 邀请其他开发者工具的作者/工程师/DevRel 同学来聊天,会分享项目起源故事,世界观,对于现今技术圈的见解,以及他们最看好的工具和技术等等。(小编调研 Airplane 的时候就参考了对话 Airplane CEO Ravi 那一集✈️)

Prometheus

https://github.com/prometheus/prometheus

Prometheus 是一款开源基于时序数据库的系统监控和报警系统。2022 年庆祝了十岁生日,也是 CNCF 的一员。它早在 2012 年被 SoundCloud 开源(但是看完 The History of Prometheus at SoundCloud: https://promcon.io/2016-berlin/talks/the-history-of-prometheus-at-soundcloud/ 之后发现好像是它们一位工程师写的监测工具在 SoundCloud 被用起来了,用着感觉还不错,然后被公司开源了,随后社区一路壮大。

Prometheus 是古希腊神话中泰坦一族的神明之一,名字意思是「先见之明」,应该就是项目名字的来源吧。Prometheus 也是继 Kubernetes 之后的第二个 CNCF 项目,看来也是颇有先见之明呀。关于 Prometheus,同样也有一期 Honeypot 出品的 Documentary (https://youtu.be/rT4fJNbfe14),值得一看。


Temporal

https://github.com/temporalio/temporal

Temporal 应该是本文中相对低调的一个项目,但也承担了平台工程中核心的一环。它是一个微服务任务调度执行平台,以一种有弹性的方式执行应用逻辑单元、工作流,自动处理间歇性故障,并重试失败的操作(这应该是它的卖点💡)。虽然它在 2020.2 发布了第一个 Release,不过创始人早在 Uber 就建立了 Cadence 工作流(uber/cadence),以解决 Uber 的工作流/编排问题,而 Temporal 是 Cadence 的一个商业化 fork 版本。

能看出来他们的创始者也是有强烈个人风格的人,去年的 Temporal 年度大会 Relay 的主视觉是这样的,好特别😍。


Terraform

https://github.com/hashicorp/terraform
Terraform 是 HashiCorp 旗下的一款通过代码化方式来管理基础设施的工具(infrastructure-as-code)。前不久天舟的「寒气下的一点信心,HashiConf 2022 观后感」已经精简概括了 Terraform 的历程。Terraform 虽然说自己是一款工具,但其实已经是一个庞大的生态了,凡是有资源概念的产品,实现 Terraform Provider 就像是实现第三方登录一样成为了一个标配,比如 Bytebase 自己的 Terraform Bytebase Provider (https://registry.terraform.io/providers/bytebase/bytebase) 也差不多成型了,欢迎大家体验哈。


平台工程是未来

好啦,平台工程项目的总结就到这儿,从老牌厂商到新秀,感觉这个类别劲头很足,我们再来盘点一下:
  • 最底层的运行平台 - Kubernetes

  • 最上层的软件目录和开发者门户 - Backstage

  • API 网关 - Kong

  • 通用搜索 - Elasticsearch

  • 代码托管 - GitLab

  • 代码搜索 - Sourcegraph

  • 监控/告警 - Prometheus

  • 仪表盘 - Grafana

  • 任务调度执行 - Temporal

  • 把上面的这些资源都管好 - Terraform
这样一个可以完全私有部署的平台工程体系就搭建好了,那还有哪些核心组件没有提到呢:
  • 安全平台(登录,网络 VPN,Audit Log,入侵检测等)

  • 资源平台(扩缩容,调度,FinOps 等)

  • 配置平台(各种应用配置,feature Flag 等)

  • 数据库开发平台(针对各种数据库的变更,查询,管理操作)
如果大家对最后提到的数据库开发平台感兴趣的话,可以考虑我们 Bytebase 这款产品。至于其他的几项,也可以私信联系我们,我们可以提供推荐。

Star History 年度精选系列
不知不觉,Star History 年度盘点已经是第三期啦,我们还安排了几期,会在近期发出!如果你有推荐的项目/盘点类别推荐,也欢迎在评论区留言😊!


Bytebase 1.11.0 发布,支持 MongoDB!
Bytebase 1.11.0 重点新功能解读
混迹 Hacker News (HN) 一年的一点经验
别再让你的工程师用 Navicat 连数据库了

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存